package com.jc.vo;

import java.io.Serializable;
import java.math.BigDecimal;


/**
 * 限额申请
 */
public class QuotaApplyVO implements Serializable {

    private static final long serialVersionUID = -1L;


    /**
     * 系统申请流水号，唯一 长度：50
     */
    private String corpSerialNo;

    /**
     * 业务类型 LC / NON_LC
     */
    private String businessType;

    /**
     * 操作类型
     * NEW: 新申请
     * MODIFY: 限额修改
     * CHANGE: 限额变更
     */
    private String operationType;

    /**
     *  原申请流水号 关联的原限额ID（变更申请时使用）
     */
    private String originalCorpSerialNo;

    public String getOperationType() {
        return operationType;
    }

    public void setOperationType(String operationType) {
        this.operationType = operationType;
    }

    public String getOriginalCorpSerialNo() {
        return originalCorpSerialNo;
    }

    public void setOriginalCorpSerialNo(String originalCorpSerialNo) {
        this.originalCorpSerialNo = originalCorpSerialNo;
    }
// 买方信息
    /**
     * 买方名称（英文大写），长度：600
     */
    private String riskCompName;
    /**
     * 买方国家和地区，长度：50
     */
    private String countryOrArea;
    /**
     * 买方地址（英文大写），长度：300
     */
    private String riskCompAddress;
    /**
     * 买方所属省份  买方国家和地区 =CHN 必填，长度：12
     */
    private String province;
    /**
     * 买方联系电话，长度：50
     */
    private String riskPhone;
    /**
     * 买方注册号，长度：100
     */
    private String riskMark;

    // 限额信息
    /**
     * 限额期限（整数），长度：5
     */
    private Integer paidTerm;
    /**
     * 金额（整数），长度：20
     */
    private BigDecimal appliAmount;

    /**
     * 报告类型（1：普通；2：加急），长度：1
     */
    private String reportType;

    /**
     * 商品类别，长度：200
     */
    private String exportTrade;
    /**
     * 商品类别说明（当商品类别选择其它时为必填），长度：40
     */
    private String exportTradeInput;

    /**
     * 运输方式（海运/空运/陆运/海陆联运），长度：10
     */
    private String transType;

    // 信用证必填
    /**
     * 信用证号，长度：50
     */
    private String creditNo;
    /**
     * 申请限额是否循环使用（信用证必填 0：非循环使用；1：循环使用），长度：1
     */
    private String isCycleUse;

    /**
     * 开证行名称（英文大写），长度：150
     */
    private String bankName;
    /**
     * 开证行国家和地区，长度：50
     */
    private String bankCountry;
    /**
     * 开证行SWIFT，长度：50
     */
    private String bankSwift;
    /**
     * 开证行地址，长度：200
     */
    private String bankAddress;

    /**
     * 出口商品名称
     * <p>
     * 信用证出口商品名称，长度：100
     */
    private String exportComName;
    /**
     * 是否分批（0：否；1：是），长度：1
     */
    private String isBatch;

    /**
     * 是否分批 =1 必填 整数 第一批金额（整数），长度：22
     */
    private BigDecimal maxAmount1;
    /**
     * 是否分批 =1 必填 第二批金额（整数），长度：22
     */
    private BigDecimal maxAmount2;

    // 信用证必填结束

    // 历史交易信息
    /**
     * 是否存在历史交易（0：否；1：是），长度：1
     */
    private String historyBusiness;
    /**
     * 存在历史交易外贸情况下必填 例：2019  最早成交年份（例：2019），长度：50
     */
    private String earlyDealYear;
    /**
     * 信用证下并且存在历史交易情况下必填   银行付款表现（及时/尚可/较慢），长度：10
     */
    private String bankPerformance;
    /**
     * 存在历史交易情况下必填 买方付款表现（及时/不及时），长度：10
     */
    private String riskPerformance;

    /**
     * 开始放账年份（例：2019），长度：50
     */
    private String startYear;

    // 存在历史交易外贸情况下必填 三项最少填写一项 (transactionLc,transactionDp,transactionDa)
    /**
     * L/C交易金额（整数），长度：50
     */
    private String transactionLc;
    /**
     * D/P交易金额（整数），长度：50
     */
    private String transactionDp;
    /**
     * D/A&OA交易金额（整数），长度：50
     */
    private String transactionDa;

    /**
     * 历史上是否有拖欠（0：无；1：有），长度：1
     */
    private String isDefaultThis;
    /**
     * 存在拖欠情况下必填 拖欠金额（整数），长度：22
     */
    private BigDecimal defaultAmount;
    /**
     * 存在拖欠情况下必填 拖欠时间（正整数），长度：5
     */
    private Integer defaultDate;

    // 其他信息
    /**
     * 备注，长度：1500
     */
    private String remark;

    /**
     * 限额变更原因 长度：12
     * <p>
     * 外贸LC：1：信用限额提高,2：信用限额降低, 3：信用期限调整, 5：信用限额生效日期倒签,
     * 外贸非LC：1：信用限额提高,2：信用限额降低, 3：信用期限调整, 4：支付方式调整, 5：信用限额生效日期倒签，
     */
    private String changeReasonCode;

    /**
     * 逾期未回款原因说明，长度：500
     */
    private String changeReasonRemark;



//    /**
//     * 是否首次申请（0：首次；1：修改/变更），长度：1
//     */
//    private String isNew;


//    /**
//     * 申请状态（1/2/3/4）
//     * 内贸以及非信用证必填 1：已调取资信报告；2：未调取资信报告；3：自行掌握限额；4：hold cover，长度：20
//     */
//    private String isReport;



    /**
     * 出口商品名称(非LC)
     * <p>
     * 外贸非信用证下必填 内贸以及信用证非必填，长度：100
     */
    private String exportName;



    /**
     * 支付方式
     * 内贸:空字符串
     * 外贸信用证:LC:LC
     * 外贸非信用证:DP：DP；DA：DA；OA：OA，长度：50
     */
    private String payWay;

    /**
     * 外贸非信用证必录1：不需要；2：需要，长度：1
     */
    private String needTranslation;


//    /**
//     * 保单号，长度：22
//     */
//    private String bussinessNo;
//    /**
//     * 被保险人piccCode，长度：44
//     */
//    private String insuredPiccCode;


//    public String getIsNew() {
//        return isNew;
//    }
//
//    public void setIsNew(String isNew) {
//        this.isNew = isNew;
//    }

    /**
     *  操作人
     */
    private String createUser;


    /**
     * 回推地址
     */
    private String callbackAddress;


    /**
     * 提交返回
     */
    private QuotaApplyResponse response;


    /**
     * 批复结果
     */
    private QuotaApprovedVO quotaApprovedVO;











    public QuotaApprovedVO getQuotaApprovedVO() {
        return quotaApprovedVO;
    }

    public void setQuotaApprovedVO(QuotaApprovedVO quotaApprovedVO) {
        this.quotaApprovedVO = quotaApprovedVO;
    }

    public String getCreateUser() {
        return createUser;
    }

    public void setCreateUser(String createUser) {
        this.createUser = createUser;
    }


    public String getCallbackAddress() {
        return callbackAddress;
    }

    public void setCallbackAddress(String callbackAddress) {
        this.callbackAddress = callbackAddress;
    }


    public String getCorpSerialNo() {
        return corpSerialNo;
    }

    public void setCorpSerialNo(String corpSerialNo) {
        this.corpSerialNo = corpSerialNo;
    }

    public String getRiskCompName() {
        return riskCompName;
    }

    public void setRiskCompName(String riskCompName) {
        this.riskCompName = riskCompName;
    }

    public String getCountryOrArea() {
        return countryOrArea;
    }

    public void setCountryOrArea(String countryOrArea) {
        this.countryOrArea = countryOrArea;
    }

    public String getRiskCompAddress() {
        return riskCompAddress;
    }

    public void setRiskCompAddress(String riskCompAddress) {
        this.riskCompAddress = riskCompAddress;
    }

    public String getProvince() {
        return province;
    }

    public void setProvince(String province) {
        this.province = province;
    }

    public String getRiskPhone() {
        return riskPhone;
    }

    public void setRiskPhone(String riskPhone) {
        this.riskPhone = riskPhone;
    }

    public String getRiskMark() {
        return riskMark;
    }

    public void setRiskMark(String riskMark) {
        this.riskMark = riskMark;
    }

    public Integer getPaidTerm() {
        return paidTerm;
    }

    public void setPaidTerm(Integer paidTerm) {
        this.paidTerm = paidTerm;
    }

    public BigDecimal getAppliAmount() {
        return appliAmount;
    }

    public void setAppliAmount(BigDecimal appliAmount) {
        this.appliAmount = appliAmount;
    }

    public String getReportType() {
        return reportType;
    }

    public void setReportType(String reportType) {
        this.reportType = reportType;
    }

    public String getExportTrade() {
        return exportTrade;
    }

    public void setExportTrade(String exportTrade) {
        this.exportTrade = exportTrade;
    }

    public String getExportTradeInput() {
        return exportTradeInput;
    }

    public void setExportTradeInput(String exportTradeInput) {
        this.exportTradeInput = exportTradeInput;
    }

    public String getTransType() {
        return transType;
    }

    public void setTransType(String transType) {
        this.transType = transType;
    }

    public String getCreditNo() {
        return creditNo;
    }

    public void setCreditNo(String creditNo) {
        this.creditNo = creditNo;
    }

    public String getIsCycleUse() {
        return isCycleUse;
    }

    public void setIsCycleUse(String isCycleUse) {
        this.isCycleUse = isCycleUse;
    }

    public String getBankName() {
        return bankName;
    }

    public void setBankName(String bankName) {
        this.bankName = bankName;
    }

    public String getBankCountry() {
        return bankCountry;
    }

    public void setBankCountry(String bankCountry) {
        this.bankCountry = bankCountry;
    }

    public String getBankSwift() {
        return bankSwift;
    }

    public void setBankSwift(String bankSwift) {
        this.bankSwift = bankSwift;
    }

    public String getBankAddress() {
        return bankAddress;
    }

    public void setBankAddress(String bankAddress) {
        this.bankAddress = bankAddress;
    }

    public String getExportComName() {
        return exportComName;
    }

    public void setExportComName(String exportComName) {
        this.exportComName = exportComName;
    }

    public String getIsBatch() {
        return isBatch;
    }

    public void setIsBatch(String isBatch) {
        this.isBatch = isBatch;
    }

    public BigDecimal getMaxAmount1() {
        return maxAmount1;
    }

    public void setMaxAmount1(BigDecimal maxAmount1) {
        this.maxAmount1 = maxAmount1;
    }

    public BigDecimal getMaxAmount2() {
        return maxAmount2;
    }

    public void setMaxAmount2(BigDecimal maxAmount2) {
        this.maxAmount2 = maxAmount2;
    }

    public String getHistoryBusiness() {
        return historyBusiness;
    }

    public void setHistoryBusiness(String historyBusiness) {
        this.historyBusiness = historyBusiness;
    }

    public String getEarlyDealYear() {
        return earlyDealYear;
    }

    public void setEarlyDealYear(String earlyDealYear) {
        this.earlyDealYear = earlyDealYear;
    }

    public String getBankPerformance() {
        return bankPerformance;
    }

    public void setBankPerformance(String bankPerformance) {
        this.bankPerformance = bankPerformance;
    }

    public String getRiskPerformance() {
        return riskPerformance;
    }

    public void setRiskPerformance(String riskPerformance) {
        this.riskPerformance = riskPerformance;
    }

    public String getStartYear() {
        return startYear;
    }

    public void setStartYear(String startYear) {
        this.startYear = startYear;
    }

    public String getTransactionLc() {
        return transactionLc;
    }

    public void setTransactionLc(String transactionLc) {
        this.transactionLc = transactionLc;
    }

    public String getTransactionDp() {
        return transactionDp;
    }

    public void setTransactionDp(String transactionDp) {
        this.transactionDp = transactionDp;
    }

    public String getTransactionDa() {
        return transactionDa;
    }

    public void setTransactionDa(String transactionDa) {
        this.transactionDa = transactionDa;
    }

    public String getIsDefaultThis() {
        return isDefaultThis;
    }

    public void setIsDefaultThis(String isDefaultThis) {
        this.isDefaultThis = isDefaultThis;
    }

    public BigDecimal getDefaultAmount() {
        return defaultAmount;
    }

    public void setDefaultAmount(BigDecimal defaultAmount) {
        this.defaultAmount = defaultAmount;
    }

    public Integer getDefaultDate() {
        return defaultDate;
    }

    public void setDefaultDate(Integer defaultDate) {
        this.defaultDate = defaultDate;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getChangeReasonCode() {
        return changeReasonCode;
    }

    public void setChangeReasonCode(String changeReasonCode) {
        this.changeReasonCode = changeReasonCode;
    }

    public String getChangeReasonRemark() {
        return changeReasonRemark;
    }

    public void setChangeReasonRemark(String changeReasonRemark) {
        this.changeReasonRemark = changeReasonRemark;
    }

//    public String getIsReport() {
//        return isReport;
//    }
//
//    public void setIsReport(String isReport) {
//        this.isReport = isReport;
//    }

    public String getExportName() {
        return exportName;
    }

    public void setExportName(String exportName) {
        this.exportName = exportName;
    }

    public String getPayWay() {
        return payWay;
    }

    public void setPayWay(String payWay) {
        this.payWay = payWay;
    }

    public String getNeedTranslation() {
        return needTranslation;
    }

    public void setNeedTranslation(String needTranslation) {
        this.needTranslation = needTranslation;
    }

    public QuotaApplyResponse getResponse() {
        return response;
    }

    public void setResponse(QuotaApplyResponse response) {
        this.response = response;
    }


    public String getBusinessType() {
        return businessType;
    }

    public void setBusinessType(String businessType) {
        this.businessType = businessType;
    }
}
